🎖️GitЯра🎖️
Node / meshtastic / Meshtastic-Android / files / app / src / main / java / com / geeksville / mesh / ui / common / components / PositionPrecisionPreference.kt
Displaying Raw • Download
app/src/main/java/com/geeksville/mesh/ui/common/components/PositionPrecisionPreference.kt ui_message_list (be3f882f) Text, 4.31 KB
T8b949e/*
* Copyright (c) 2025 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787com.geeksville.mesh.ui.common.components
Tff7b72import T7ee787androidx.compose.foundation.layout.Column
Tff7b72import T7ee787androidx.compose.foundation.layout.PaddingValues
Tff7b72import T7ee787androidx.compose.foundation.layout.padding
Tff7b72import T7ee787androidx.compose.material3.MaterialTheme
Tff7b72import T7ee787androidx.compose.material3.Slider
Tff7b72import T7ee787androidx.compose.material3.Text
Tff7b72import T7ee787androidx.compose.runtime.Composable
Tff7b72import T7ee787androidx.compose.runtime.remember
Tff7b72import T7ee787androidx.compose.ui.Alignment
Tff7b72import T7ee787androidx.compose.ui.Modifier
Tff7b72import T7ee787androidx.compose.ui.res.stringResource
Tff7b72import T7ee787androidx.compose.ui.text.style.TextOverflow
Tff7b72import T7ee787androidx.compose.ui.tooling.preview.Preview
Tff7b72import T7ee787androidx.compose.ui.unit.dp
Tff7b72import T7ee787com.geeksville.mesh.R
Tff7b72import T7ee787com.geeksville.mesh.util.DistanceUnit
Tff7b72import T7ee787com.geeksville.mesh.util.toDistanceString
Tff7b72import T7ee787kotlin.math.pow
Tff7b72import T7ee787kotlin.math.roundToInt
Tff7b72private Tff7b72const Tff7b72val Te6edf3POSITION_ENABLED Tff7b72= T79c0ff3T79c0ff2
Tff7b72private Tff7b72const Tff7b72val Te6edf3POSITION_DISABLED Tff7b72= T79c0ff0
Tff7b72private Tff7b72const Tff7b72val Te6edf3POSITION_PRECISION_MIN Tff7b72= T79c0ff1T79c0ff0
Tff7b72private Tff7b72const Tff7b72val Te6edf3POSITION_PRECISION_MAX Tff7b72= T79c0ff1T79c0ff9
Tff7b72private Tff7b72const Tff7b72val Te6edf3POSITION_PRECISION_DEFAULT Tff7b72= T79c0ff1T79c0ff3
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffMagicNumberTa5d6ff"Tb4b4b4)
Tff7b72fun Td2a8ffprecisionBitsToMetersTb4b4b4(Te6edf3bitsTb4b4b4: Tffa657IntTb4b4b4)Tb4b4b4: Tffa657Double Tff7b72= T79c0ff2T79c0ff3T79c0ff9T79c0ff0T79c0ff5T79c0ff7T79c0ff8T79c0ff7.925008 Tff7b72* T79c0ff0.5Tb4b4b4.Te6edf3powTb4b4b4(Te6edf3bitsTb4b4b4.Te6edf3toDoubleTb4b4b4(Tb4b4b4)Tb4b4b4)
Tf0883e@Composable
Tff7b72fun Td2a8ffPositionPrecisionPreferenceTb4b4b4(
Te6edf3valueTb4b4b4: Tffa657IntTb4b4b4,
Te6edf3enabledTb4b4b4: Tffa657BooleanTb4b4b4,
Te6edf3onValueChangedTb4b4b4: Tb4b4b4(Tffa657IntTb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4,
Te6edf3modifierTb4b4b4: Te6edf3Modifier Tff7b72= Te6edf3ModifierTb4b4b4,
Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3unit Tff7b72= Te6edf3remember Tb4b4b4{ Te6edf3DistanceUnitTb4b4b4.Te6edf3getFromLocaleTb4b4b4(Tb4b4b4) Tb4b4b4}
Te6edf3ColumnTb4b4b4(Te6edf3modifier Tff7b72= Te6edf3modifierTb4b4b4) Tb4b4b4{
Te6edf3SwitchPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3position_enabledTb4b4b4)Tb4b4b4,
Te6edf3checked Tff7b72= Te6edf3value Tff7b72!Tff7b72= Te6edf3POSITION_DISABLEDTb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3enabledTb4b4b4,
Te6edf3onCheckedChange Tff7b72= Tb4b4b4{ Te6edf3enabled Tff7b72-Tff7b72>
Tff7b72val Te6edf3newValue Tff7b72= Tff7b72if Tb4b4b4(Te6edf3enabledTb4b4b4) Te6edf3POSITION_ENABLED Tff7b72else Te6edf3POSITION_DISABLED
Te6edf3onValueChangedTb4b4b4(Te6edf3newValueTb4b4b4)
Tb4b4b4}Tb4b4b4,
Te6edf3padding Tff7b72= Te6edf3PaddingValuesTb4b4b4(T79c0ff0.Te6edf3dpTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72if Tb4b4b4(Te6edf3value Tff7b72!Tff7b72= Te6edf3POSITION_DISABLEDTb4b4b4) Tb4b4b4{
Te6edf3SwitchPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3precise_locationTb4b4b4)Tb4b4b4,
Te6edf3checked Tff7b72= Te6edf3value Tff7b72=Tff7b72= Te6edf3POSITION_ENABLEDTb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3enabledTb4b4b4,
Te6edf3onCheckedChange Tff7b72= Tb4b4b4{ Te6edf3enabled Tff7b72-Tff7b72>
Tff7b72val Te6edf3newValue Tff7b72= Tff7b72if Tb4b4b4(Te6edf3enabledTb4b4b4) Te6edf3POSITION_ENABLED Tff7b72else Te6edf3POSITION_PRECISION_DEFAULT
Te6edf3onValueChangedTb4b4b4(Te6edf3newValueTb4b4b4)
Tb4b4b4}Tb4b4b4,
Te6edf3padding Tff7b72= Te6edf3PaddingValuesTb4b4b4(T79c0ff0.Te6edf3dpTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3value Tff7b72in Tb4b4b4(Te6edf3POSITION_DISABLED Tff7b72+ T79c0ff1Tb4b4b4) Te6edf3until Te6edf3POSITION_ENABLEDTb4b4b4) Tb4b4b4{
Te6edf3ColumnTb4b4b4(Te6edf3horizontalAlignment Tff7b72= Te6edf3AlignmentTb4b4b4.Te6edf3CenterHorizontallyTb4b4b4) Tb4b4b4{
Te6edf3SliderTb4b4b4(
Te6edf3value Tff7b72= Te6edf3valueTb4b4b4.Te6edf3toFloatTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3onValueChange Tff7b72= Tb4b4b4{ Te6edf3onValueChangedTb4b4b4(Tffa657itTb4b4b4.Te6edf3roundToIntTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4}Tb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3enabledTb4b4b4,
Te6edf3valueRange Tff7b72= Te6edf3POSITION_PRECISION_MINTb4b4b4.Te6edf3toFloatTb4b4b4(Tb4b4b4)Tb4b4b4.Tb4b4b4.Te6edf3POSITION_PRECISION_MAXTb4b4b4.Te6edf3toFloatTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3steps Tff7b72= Te6edf3POSITION_PRECISION_MAX Tff7b72- Te6edf3POSITION_PRECISION_MIN Tff7b72- T79c0ff1Tb4b4b4,
Tb4b4b4)
Tff7b72val Te6edf3precisionMeters Tff7b72= Te6edf3precisionBitsToMetersTb4b4b4(Te6edf3valueTb4b4b4)Tb4b4b4.Te6edf3toIntTb4b4b4(Tb4b4b4)
Te6edf3TextTb4b4b4(
Te6edf3text Tff7b72= Te6edf3precisionMetersTb4b4b4.Te6edf3toDistanceStringTb4b4b4(Te6edf3unitTb4b4b4)Tb4b4b4,
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3paddingTb4b4b4(Te6edf3bottom Tff7b72= T79c0ff1T79c0ff6.Te6edf3dpTb4b4b4)Tb4b4b4,
Te6edf3fontSize Tff7b72= Te6edf3MaterialThemeTb4b4b4.Te6edf3typographyTb4b4b4.Te6edf3bodyLargeTb4b4b4.Te6edf3fontSizeTb4b4b4,
Te6edf3overflow Tff7b72= Te6edf3TextOverflowTb4b4b4.Te6edf3EllipsisTb4b4b4,
Te6edf3maxLines Tff7b72= T79c0ff1Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tf0883e@PreviewTb4b4b4(Te6edf3showBackground Tff7b72= Tff7b72trueTb4b4b4)
Tf0883e@Composable
Tff7b72private Tff7b72fun Td2a8ffPositionPrecisionPreferencePreviewTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3PositionPrecisionPreferenceTb4b4b4(
Te6edf3value Tff7b72= Te6edf3POSITION_PRECISION_DEFAULTTb4b4b4,
Te6edf3enabled Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3onValueChanged Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3paddingTb4b4b4(Te6edf3horizontal Tff7b72= T79c0ff1T79c0ff6.Te6edf3dpTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Served by rngit 1.5.1 - Generated in 0.06s